package com.irdstudio.efp.cus.service.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.irdstudio.efp.cus.service.domain.CusPrelistRiskInfo;
import com.irdstudio.efp.cus.service.domain.CusPrelistRiskInfoTmp;

/**
 * <p>
 * 客户预授信名单风险信息的DAO类
 * </p>
 * @author yusys
 * @createDate 2018-05-12 17:59:39
 */
public interface CusPrelistRiskInfoDao {
    
    /**
     * 插入客户预授信名单风险信息记录
     * @param cusPrelistRiskInfo
     * @return
     */
    public int insertCusPrelistRiskInfo(CusPrelistRiskInfo cusPrelistRiskInfo);
    
    /**
     * 根据主键删除客户预授信名单风险信息记录
     * @param cusPrelistRiskInfo
     * @return
     */
    public int deleteByPk(CusPrelistRiskInfo cusPrelistRiskInfo);
    
    /**
     * 根据主键更新客户预授信名单风险信息记录
     * @param cusPrelistRiskInfo
     * @return
     */
    public int updateByPk(CusPrelistRiskInfo cusPrelistRiskInfo);
    
    /**
     * 查询客户预授信名单风险信息记录
     * @param cusPrelistRiskInfo
     * @return
     */
    public CusPrelistRiskInfo queryByPk(CusPrelistRiskInfo cusPrelistRiskInfo);
    
    /**
     * 查询客户预授信名单风险信息记录
     * @param cusPrelistRiskInfo
     * @return
     */
    public CusPrelistRiskInfo queryByCondition(CusPrelistRiskInfo cusPrelistRiskInfo);
    
    /**
     * 
     * @Description 批量插入风险的数据
     * @param cusPrelistRiskInfoList
     * @return
     */
    public int insertCusPrelistRiskInfoList(@Param("cusPrelistRiskInfoList")List<CusPrelistRiskInfo> cusPrelistRiskInfoList);
    
    /**
     * 
     * @Description 根据条件查询list数据
     * @param cusPrelistRiskInfo
     * @return
     */
    public List<CusPrelistRiskInfo> queryListByCondition(CusPrelistRiskInfo cusPrelistRiskInfo);
    
    /**
     * 
     * @Description 批量插入风险的数据,临时表
     * @param cusPrelistRiskInfoList
     * @return
     */
    public int insertCusPrelistRiskInfoTmpList(@Param("lmtPrelistTmps")List<CusPrelistRiskInfoTmp> lmtPrelistTmps);
    
    /**
     * 
     * @Description 将临时表的数据导入到正式表中
     * @param cusPrelistRiskInfoList
     * @return
     */
    public int insertCusPrelistRiskInfoFromTmp(@Param("dailyDataInd") String dailyDataInd);
    
    /**
     * 
     * @Description 查询根据ods返回的数据中不通过的
     * @param cusPrelistRiskInfoList
     * @return
     */
    public List<CusPrelistRiskInfoTmp> queryCusRiskNoPassList(CusPrelistRiskInfoTmp cusPrelistRiskInfoTmpList);
    
    /**
     * 
     * @Description 查询根据ods返回的数据中不通过的
     * @param cusPrelistRiskInfoList
     * @return
     */
    public List<CusPrelistRiskInfoTmp> queryCusRiskPassList(@Param("cusPrelists")List<CusPrelistRiskInfoTmp> cusPrelists);
    
    /**
     * 
     * @Description 清空临时表的记录
     * @return
     */
    public int deleteCusRisk();
    
    /**
     * 
     * @Description 查询在正式表中存在的流水号
     * @param cusPrelistRiskInfoList
     * @return
     */
    public List<CusPrelistRiskInfoTmp> queryCusRiskExitsList(@Param("cusPrelists")List<CusPrelistRiskInfoTmp> cusPrelists);
    
    /**
     * 
     * @Description 将在正式表中存在的流水号放入历史表
     * @param dailyDataInd
     * @return
     */
    public int insertCusPrelistRiskInfoToHis(@Param("dailyDataInd") String dailyDataInd);
    
    /**
     * 
     * @Description 清空正式表中的记录
     * @return
     */
    public int deleteCusPrelistRiskInfoByTmp(@Param("dailyDataInd") String dailyDataInd);
    
    /**
     * 
     * @Description 清空临时表中的记录
     * @return
     */
    public int deleteCusPrelistRiskInfoTmp(@Param("dailyDataInd") String dailyDataInd);
    
    /**
     * 
     * @Description 查询不通过的原因
     * @param pramMap
     * @return
     */
    public List<Map<String, Object>> queryCusNoPassReasonList(Map<String, Object> pramMap);
    
    /**
     * 更新正式表为空的字段信息：老赖、配偶员工标识、配偶涉诉、配偶老赖
     * @return
     */
    public int updateNullInfoByHis();
}